home *** CD-ROM | disk | FTP | other *** search
- #ifndef _VGALIB_HPP
- #define _VGALIB_HPP
-
- class GraphicsAPI;
- class VGAGraphicsAPI;
- class Chained256;
- class Unchained256;
- class Planar16;
-
- class GraphicsAPI
- {
- public:
- enum HJustify { LEFT, HCENTER, RIGHT };
- enum VJustify { TOP, VCENTER, BOTTOM };
-
- protected:
- int xres, yres, vxres, vyres, color, colors;
- unsigned char *font, *libID;
- int fontWidth, fontHeight;
- HJustify hJustify;
- VJustify vJustify;
- public:
- GraphicsAPI(int, int, int, int, int);
- virtual ~GraphicsAPI() {}
- virtual char *getLibID() { return libID; }
- virtual int getWidth() { return xres; }
- virtual int getHeight() { return yres; }
- virtual int getVirtualWidth() { return vxres; }
- virtual int getVirtualHeight() { return vyres; }
- virtual long getPageSize() { return long(xres)*yres; }
- virtual int getColors() { return colors; }
- virtual void setColor(int c) { color = c; }
- virtual void setBase(int, int) =0;
- virtual void syncWithRefresh() =0;
- virtual int getColor() { return color; }
- virtual void putPixel(int x, int y) { putPixel(x, y, color); }
- virtual void putPixel(int x, int y, int c) =0;
- virtual int getPixel(int x, int y) =0;
- virtual void hLine(int, int, int);
- virtual void vLine(int, int, int);
- virtual void line(int, int, int, int);
- virtual void rectangle(int, int, int, int);
- virtual void bar(int, int, int, int);
- virtual void wipe();
- virtual void putChar(int, int, int);
- virtual void putText(int, int, char*);
- virtual void setTextJustify(HJustify, VJustify);
- };
-
- class VGAGraphicsAPI : public GraphicsAPI
- {
- protected:
- int xbytes;
- static unsigned char *videoBuf;
- virtual unsigned getOffset(int, int);
- virtual int getPelPan(int) =0;
- public:
- VGAGraphicsAPI(int, int, int, int, int);
- void syncWithRefresh();
- void setBase(int, int);
- };
-
- class Chained256 : public VGAGraphicsAPI
- {
- protected:
- int getPelPan(int);
- unsigned getOffset(int, int);
- public:
- Chained256(int, int, int);
- void putPixel(int, int, int);
- int getPixel(int, int);
- virtual void hLine(int, int, int);
- };
-
- class Unchained256 : public VGAGraphicsAPI
- {
- protected:
- int getPelPan(int);
- public:
- Unchained256(int, int, int);
- void putPixel(int, int, int);
- int getPixel(int, int);
- virtual void hLine(int, int, int);
- };
-
- class Planar16 : public VGAGraphicsAPI
- {
- protected:
- int getPelPan(int);
- public:
- Planar16(int, int, int);
- void putPixel(int, int, int);
- int getPixel(int, int);
- void hLine(int, int, int);
- };
-
- #endif